package com.binhthuan.catechist.client.dto;

import name.pehl.piriti.client.json.Json;
import name.pehl.piriti.client.json.JsonReader;
import name.pehl.piriti.client.json.JsonWriter;

import com.google.gwt.core.client.GWT;

/**
 * @author <b>Giang Đinh</b> - Điểm số của học viên, tương ứng với bảng
 *         <b>diem_ca_nhan</b> trong cơ sở dữ liệu.
 */
public class Mark {

    public interface MarkReader extends JsonReader<Mark> {
    }
    public interface MarkWriter extends JsonWriter<Mark> {
    }

    public static MarkReader READER = GWT.create(MarkReader.class);
    public static MarkWriter WRITER = GWT.create(MarkWriter.class);

    /**
     * Mã điểm cá nhân.
     */
    @Json
    private Integer id;
    
    /**
     * Học viên.
     */
    @Json
    private Trainee trainee;
    
    /**
     * Điểm số.
     */
    @Json
    private Float value;
    
    /**
     * Bảng điểm.
     */
    @Json
    private Transcript transcript;
    
    public Mark() {
        
    }

    /**
     * Lấy mã điểm cá nhân.
     * @return Mã điểm cá nhân.
     */
    public Integer getId() {
        return id;
    }

    /**
     * Gán mã điểm cá nhân.
     * @param id
     *            Mã điểm cá nhân.
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Lấy học viên.
     * @return Học viên.
     */
    public Trainee getTrainee() {
        return trainee;
    }

    /**
     * Gán học viên.
     * @param trainee
     *            Học viên.
     */
    public void setTrainee(Trainee trainee) {
        this.trainee = trainee;
    }

    /**
     * Lấy điểm số.
     * @return Điểm số.
     */
    public Float getValue() {
        return value;
    }

    /**
     * Gán điểm số.
     * @param value
     *            Điểm số.
     */
    public void setValue(Float value) {
        this.value = value;
    }

    /**
     * Lấy bảng điểm.
     * @return Bảng điểm.
     */
    public Transcript getTranscript() {
        return transcript;
    }

    /**
     * Gán bảng điểm.
     * @param transcript
     *            Bảng điểm.
     */
    public void setTranscript(Transcript transcript) {
        this.transcript = transcript;
    }
}
